package com.authine.cloudpivot.web.api.secondopen.modules;

import cn.hutool.db.DaoTemplate;
import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * qad供应商发票传输字段
 */
@Data
public class QadInvoiceDTO {

    /**
     * 会计单位
     */
    @JSONField(name = "MdmIcCompnayCode")
    @JsonProperty("MdmIcCompnayCode")
    String MdmIcCompnayCode;

    /**
     * 供应商
     */
    @JSONField(name = "MdmIcCreditorCode")
    @JsonProperty("MdmIcCreditorCode")
    String  MdmIcCreditorCode;

    /**
     * 参考
     */
    @JSONField(name = "MdmIcCInvoiceReference")
    @JsonProperty("MdmIcCInvoiceReference")
    String MdmIcCInvoiceReference;

    /**
     * 描述
     */
    @JSONField(name = "MdmIcCInvoiceDescription")
    @JsonProperty("MdmIcCInvoiceDescription")
    String MdmIcCInvoiceDescription;

    /**
     * 发票类型
     */
    @JSONField(name = "MdmIcCInvoiceType")
    @JsonProperty("MdmIcCInvoiceType")
    String MdmIcCInvoiceType;

    /**
     * 日记账集代码
     */
    @JSONField(name = "MdmIcCInvoiceDayBookSetCode")
    @JsonProperty("MdmIcCInvoiceDayBookSetCode")
    String MdmIcCInvoiceDayBookSetCode;

    /**
     * 地点
     */
    @JSONField(name = "MdmIcCInvoiceSiteCode")
    @JsonProperty("MdmIcCInvoiceSiteCode")
    String MdmIcCInvoiceSiteCode;

    /**
     * 日记账代码
     */
    @JSONField(name = "MdmIcJournalCode")
    @JsonProperty("MdmIcJournalCode")
    String MdmIcJournalCode;

    /**
     * 过账日期
     */
    @JSONField(name = "MdmIdTCInvoicePostingDate")
    @JsonProperty("MdmIdTCInvoicePostingDate")
    String MdmIdTCInvoicePostingDate;

    /**
     * 发票日期
     */
    @JSONField(name = "MdmIdTCInvoiceDate")
    @JsonProperty("MdmIdTCInvoiceDate")
    String MdmIdTCInvoiceDate;

    /**
     * 发票状态代码
     */
    @JSONField(name = "MdmItCReasonCode")
    @JsonProperty("MdmItCReasonCode")
    String MdmItCReasonCode;

    /**
     * 发票金额--未税
     */
    @JSONField(name = "MdmIdEtdCInvoiceOriginalTC")
    @JsonProperty("MdmIdEtdCInvoiceOriginalTC")
    BigDecimal MdmIdEtdCInvoiceOriginalTC=BigDecimal.ZERO;

    /**
     * 发票金额--税金
     */
    @JSONField(name = "MdmIdEtdCInvoiceTax")
    @JsonProperty("MdmIdEtdCInvoiceTax")
    BigDecimal  MdmIdEtdCInvoiceTax=BigDecimal.ZERO;

    /**
     * 货币
     */
    @JSONField(name = "MdmIcCurrencyCode")
    @JsonProperty("MdmIcCurrencyCode")
    String MdmIcCurrencyCode;

    /**
     * 应税
     */
    @JSONField(name = "MdmIlCInvoiceIsTaxable")
    @JsonProperty("MdmIlCInvoiceIsTaxable")
    Boolean MdmIlCInvoiceIsTaxable;

    /**
     * 不含税
     */
    @JSONField(name = "MdmIlCInvoiceIsTaxExcluded")
    @JsonProperty("MdmIlCInvoiceIsTaxExcluded")
    Boolean MdmIlCInvoiceIsTaxExcluded;

    /**
     * 分账户
     */
    @JSONField(name = "MdmIcDivisionCode")
    @JsonProperty("MdmIcDivisionCode")
    String MdmIcDivisionCode;

    /**
     * 成本中心
     */
    @JSONField(name = "MdmIcCostCentreCode")
    @JsonProperty("MdmIcCostCentreCode")
    String  MdmIcCostCentreCode;

    /**
     * 项目
     */
    @JSONField(name = "MdmIcProjectCode")
    @JsonProperty("MdmIcProjectCode")
    String MdmIcProjectCode;

    /**
     * 业务关系代码
     */
    @JSONField(name = "MdmIcShipToBusinessRelation")
    @JsonProperty("MdmIcShipToBusinessRelation")
    String MdmIcShipToBusinessRelation;

    /**
     * 链接到发票
     */
    @JSONField(name = "MdmIiLinkedPeriodYear")
    @JsonProperty("MdmIiLinkedPeriodYear")
    Integer MdmIiLinkedPeriodYear;

    /**
     * 链接到发票第二个字段
     */
    @JSONField(name = "MdmIcLinkedJournalCode")
    @JsonProperty("MdmIcLinkedJournalCode")
    String MdmIcLinkedJournalCode;

    /**
     * 凭证
     */
    @JSONField(name = "MdmIiLinkedCInvoiceVoucher")
    @JsonProperty("MdmIiLinkedCInvoiceVoucher")
    Integer MdmIiLinkedCInvoiceVoucher;

    /**
     * 凭证明细
     */
    @JSONField(name = "MdmMFpostingline")
    @JsonProperty("MdmMFpostingline")
    List<MdmMFpostinglineVO> MdmMFpostingline=new ArrayList<>();
}
